/**
 * @(#)KalenderImpl.java
 * 1.0, 2013-01-24
 */
package de.hdm.gruppenkalender.team04.data;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.Vector;

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.ADDF8A27-077C-35E7-7AE0-5E8C9C82C91C]
// </editor-fold>
/**
 * Implementierungsklasse des Interface {@link Kalender}
 *
 * @author Mathias Bendel (mb167)
 * @author Björn Fichnter (bf023)
 * @author Stefan Hettich (sh176)
 * @author René Kugel (rk044)
 * @author Mark Leonberger (ml072)
 * @author Marta Przybylski (mp070)
 *
 * @version 1.0, 2013-01-24
 *
 * @see Kalender
 */
public class KalenderImpl extends UnicastRemoteObject implements Kalender {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.68ABBFD0-3303-D1EA-07A9-43F6A4EFE64A]
    // </editor-fold> 
    /**
     * die Variable kalenderId beinhaltet die eindeutige Id des Kalenders
     */
    private int kalenderId;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.55BB71DF-7E30-80F9-7941-1E3979953CE3]
    // </editor-fold> 
    /**
     *die Variable bezeichnung vom Typ String beinhaltet den Namen des Kalenders 
     */
    private String bezeichnung;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.26C8FFFA-4666-0B50-5D27-C47E4A34FEA3]
    // </editor-fold> 
    /**
     * die Variable besitzer beinhaltet den Eigentümer des Kalenders
     */
    private int besitzerId;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.94D0DFA9-D5D5-AA14-96A2-75040CC2C06B]
    // </editor-fold> 
    /**
     * das Array zugriffsberechtigte vom Typ Person enthält die Liste der zugriffsberechtigten Personen
     */
    private Vector<Integer> zugriffberechtigte;

    /**
     * Konstruktor
     * 
     * @throws RemoteException
     */
    public KalenderImpl() throws RemoteException {
        super();
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.07ECBACA-55B2-CFE5-D447-35A97B74E7A2]
    // </editor-fold> 
    /**
     * Gibt die ID des {@link Kalender}s zurück.
     *
     * @return  int             kalenderId
     * @throws  RemoteException
     */
    public int getKalenderId() throws RemoteException {
        return this.kalenderId;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.E2AC657B-1D04-AACF-F5AC-E1857BD0C252]
    // </editor-fold> 
    /**
     * Setzt eine neue {@link Kalender}-ID.
     *
     * @param   kalenderId
     * @throws  RemoteException
     */
    public void setKalenderId(int kalenderId) throws RemoteException {
        this.kalenderId = kalenderId;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.11F72C59-F431-E925-A2D9-F00263B8C99E]
    // </editor-fold> 
    /**
     * Gibt die Bezeichnung des {@link Kalender}s zurück.
     *
     * @return  String          bezeichnung
     * @throws  RemoteException
     */
    public String getBezeichnung() throws RemoteException {
        return this.bezeichnung;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.02AA7407-EF35-12EE-854D-529F91CAB389]
    // </editor-fold> 
    /**
     * Setzt eine neue Bezeichnung.
     *
     * @param   bezeichnung
     * @throws  RemoteException
     */
    public void setBezeichnung(String bezeichnung) throws RemoteException {
        this.bezeichnung = bezeichnung;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.E2E9D4B6-E23F-90E5-8DE4-E5B74C10AD2C]
    // </editor-fold> 
    /**
     * Gibt die ID des Besitzers ({@link Person}) zurück.
     *
     * @return  int             besitzerId
     * @throws  RemoteException
     */
    public int getBesitzerId() throws RemoteException {
        return this.besitzerId;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.710D944E-A0DC-6316-EE1E-0B8B29C77F87]
    // </editor-fold> 
    /**
     * Setzt eine neue Besitzer ({@link Person}).
     *
     * @param   besitzerId
     * @throws  RemoteException
     */
    public void setBesitzerId(int besitzerId) throws RemoteException {
        this.besitzerId = besitzerId;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.B135A6ED-71BA-33F9-4024-63DE655C7CC5]
    // </editor-fold> 
    /**
     * Gibt einen {@link Vector} von {@link Integer}-Werten mit den
     * zugriffsberechtigten {@link Person}en zurück.
     *
     * @return  Vector<Integer> Zugriffberechtigten-IDs.
     * @throws  RemoteException
     */
    public Vector<Integer> getZugriffsberechtigteId() throws RemoteException {
        return this.zugriffberechtigte;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.0C9183A4-CDE5-B68B-BF1F-15EECEE4EBAE]
    // </editor-fold> 
    /**
     * Setzt einen neuen Zugriffsberechtigten-{@link Vector}.
     *
     * @param   zugriffsberechtigteId
     * @throws  RemoteException
     */
    public void setZugriffsberechtigteId(Vector<Integer> zugriffsberechtigteId)
            throws RemoteException {
        this.zugriffberechtigte = zugriffsberechtigteId;
    }

    /**
     * Gibt einen eindeutigen Identifikations-String zu Anzeige in der GUI zurück.
     *
     * @return  String          IdentifikationsName
     * @throws  RemoteException
     */
    public String ermittleIdentifikationsName() throws RemoteException {
        return "[" + kalenderId + "] " + bezeichnung;
    }
}
